/*
 * 作者：姚俊
 * 功能：建设平台的业务处理
 * 日期：2015-05-21
 */
package admin.service.subject;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;

import beanDao.MapToBean;
import admin.bean.Platform;
import database.dao.MysqlCrud;
public class PlatformService {	
	/**
	 * @category 根据建设平台项目的ID来查询一个建设平台
	 * @author yaojun
	 * @param platform Platform 传入一个建设平台信息的对象，该对象必须有建设平台信息的ID
	 * @return Platform 返回的是一个建设平台信息的对象
	 */
	public Platform getPlatform(Platform platform)
	{
		Platform pla =new Platform();
		String sql="select * from Platform where plaId=?";
		String[]  parameter={String.valueOf(platform.getPlaId())};
        MysqlCrud mysqlcurd=new MysqlCrud();
		List<Map> lists=mysqlcurd.SelectData(sql, parameter);
		if(lists.size()>0&&lists!=null)
		{	
			Map map=lists.get(0);
			pla=new MapToBean().MapToPlatform(map);
		}
		
		return pla;
	}
	/**
	 * @category 根据建设平台的ID来删除一个建设平台记录
	 * @author yaojun
	 * @param Platform Platform 传入一个建设平台信息的对象,该对象必须有建设平台的主键ID
	 * @return boolean 当删除成功返回true，否则返回false
	 */
	public boolean deletePlatform(Platform platform)
	{
		boolean b=false;
		String sql="delete from Platform where plaId=?";
		String[]  parameter={String.valueOf(platform.getPlaId())};
	    MysqlCrud mysqlcurd=new MysqlCrud();
		b=mysqlcurd.InsertAndUpdateData(sql, parameter);
		 return b;
	}
	
	/**
	 * @category 插入一个建设平台信息对象数据
	 * @author yaojun
	 * @param platform Platform 传入一个建设平台信息对象的参数,该对象中的数据最好都有
	 * @return boolean 如果成功true
	 */
	public boolean insertPlatform(Platform platform)
	{
		boolean b=false;
		String sql="insert into Platform(name,level," +
		"approvedDepartment,approvedDate,subjectId,classify)"+" values(?,?,?,?,?,?);";
		String[] parameter={String.valueOf(platform.getName()),
				String.valueOf(platform.getLevel()),String.valueOf(platform.getApprovedDepartment()),
				String.valueOf(platform.getApprovedDate()),String.valueOf(platform.getSubjectId()),
				String.valueOf(platform.getClassify())};	
		MysqlCrud mysqlcurd=new MysqlCrud();
		b=mysqlcurd.InsertAndUpdateData(sql, parameter);
		return b;
	}
	
	/**
	 * @category 根据建设平台信息的ID来修改这个建设平台的信息
	 * @author yaojun
	 * @param pla1 Platform 传入一个要用于修改的Platform对象
	 * @param pla2 Platform 传入一个根据这个Platform对象的ID来查找需要修改的哪一条建设平台信息数据
	 * @return boolean 成功则返回true
	 */
	public boolean updatePlatform(Platform pla1,Platform pla2)
	{
		boolean b=false;
		String sql="update Platform set name=?,level=?," +
		"approvedDepartment=?,approvedDate=?,subjectId=?,classify=? where plaId=?";
		
		String[] parameter={String.valueOf(pla1.getName()),
				String.valueOf(pla1.getLevel()),String.valueOf(pla1.getApprovedDepartment()),
				String.valueOf(pla1.getApprovedDate()),String.valueOf(pla1.getSubjectId()),
				String.valueOf(pla1.getClassify()),String.valueOf(pla2.getPlaId())};	
		
		MysqlCrud mysqlcurd=new MysqlCrud();
		b=mysqlcurd.InsertAndUpdateData(sql, parameter);
		return b;
	}
	
	/**
	 * @category 得到建设平台信息的数量
	 * @author yaojun
	 * @return int
	 */
	public int getCountPlatform()
	{
		int sum=0;
		String sql="select count(*) from Platform";
		MysqlCrud mysqlcurd=new MysqlCrud();
		List<Map> lists=mysqlcurd.SelectData(sql,null);
		Map map=lists.get(0);
		sum=Integer.parseInt(map.get(0).toString());
		return sum;
	}
	
	/**
	 * @category 根据分类级别得到建设平台信息的数量
	 * @author yaojun
	 * @param level int 0:省部级以上工程（技术）中心、1:专业实验室、2:重点实验室、3:试验基地
	 * @return int
	 */
	public int getCountPlatformByLevel(int level)
	{
		int sum=0;
		String sql="select count(*) from Platform where level=?";
		MysqlCrud mysqlcurd=new MysqlCrud();
		String[] parameter={String.valueOf(level)};
		List<Map> lists=mysqlcurd.SelectData(sql,parameter);
		Map map=lists.get(0);
		sum=Integer.parseInt(map.get(0).toString());
		return sum;
	}
	
	/**
	 * @category 根据名称的条件查询所有建设平台信息
	 * @author yaojun
	 * @param Platform Platform 传入一个建设平台管理信息的对象，该对象中必须有建设平台管理信息的名称
     * @return 返回一个类型为Platform的List集合
	 */
	public List<Platform> getAllPlatformByName(Platform platform)
	{
		String sql="select * from Platform where name like '%"+platform.getName()+"%'";
		List<Platform> platforms=new ArrayList<Platform>();
		MysqlCrud mysqlcurd=new MysqlCrud();
		List<Map> lists=mysqlcurd.SelectData(sql,null);
		for(int i=0;i<lists.size();i++)
		{
			Map map=lists.get(i);
			platforms.add(new MapToBean().MapToPlatform(map));
		}
		return platforms;		
	}	
	
	/**
	 * @category 查询所有建设平台信息
	 * @author yaojun
     * @return 返回一个类型为Platform的List集合
	 */
	public List<Platform> getAllPlatform()
	{
		String sql="select * from Platform order by level,approvedDate";
		List<Platform> platforms=new ArrayList<Platform>();
		MysqlCrud mysqlcurd=new MysqlCrud();
		List<Map> lists=mysqlcurd.SelectData(sql,null);
		for(int i=0;i<lists.size();i++)
		{
			Map map=lists.get(i);
			platforms.add(new MapToBean().MapToPlatform(map));
		}
		return platforms;		
	}	

}
